public class TestMyCircularQueue {
    public static void main(String[] args) {
        // 创建一个容量为3的循环队列
        MyCircularQueue queue = new MyCircularQueue(3);

        System.out.println("=== 初始状态测试 ===");
        System.out.println("队列是否为空: " + queue.isEmpty());  // 预期: true
        System.out.println("队列是否已满: " + queue.isFull());   // 预期: false
        System.out.println("队头元素: " + queue.Front());      // 预期: -1
        System.out.println("队尾元素: " + queue.Rear());       // 预期: -1

        System.out.println("\n=== 入队测试 ===");
        System.out.println("入队1: " + queue.enQueue(1));      // 预期: true
        System.out.println("入队2: " + queue.enQueue(2));      // 预期: true
        System.out.println("入队3: " + queue.enQueue(3));      // 预期: true
        System.out.println("入队4(应失败): " + queue.enQueue(4)); // 预期: false

        System.out.println("\n=== 满队列测试 ===");
        System.out.println("队列是否为空: " + queue.isEmpty());  // 预期: false
        System.out.println("队列是否已满: " + queue.isFull());   // 预期: true
        System.out.println("队头元素: " + queue.Front());      // 预期: 1
        System.out.println("队尾元素: " + queue.Rear());       // 预期: 3

        System.out.println("\n=== 出队测试 ===");
        System.out.println("出队: " + queue.deQueue());        // 预期: true
        System.out.println("队头元素: " + queue.Front());      // 预期: 2
        System.out.println("队尾元素: " + queue.Rear());       // 预期: 3

        System.out.println("\n=== 循环特性测试 ===");
        System.out.println("入队4: " + queue.enQueue(4));      // 预期: true
        System.out.println("队列是否已满: " + queue.isFull());   // 预期: true
        System.out.println("队头元素: " + queue.Front());      // 预期: 2
        System.out.println("队尾元素: " + queue.Rear());       // 预期: 4

        System.out.println("\n=== 出队直到空 ===");
        System.out.println("出队: " + queue.deQueue());        // 预期: true
        System.out.println("出队: " + queue.deQueue());        // 预期: true
        System.out.println("出队: " + queue.deQueue());        // 预期: true
        System.out.println("出队(应失败): " + queue.deQueue()); // 预期: false

        System.out.println("\n=== 空队列测试 ===");
        System.out.println("队列是否为空: " + queue.isEmpty());  // 预期: true
        System.out.println("队列是否已满: " + queue.isFull());   // 预期: false
        System.out.println("队头元素: " + queue.Front());      // 预期: -1
        System.out.println("队尾元素: " + queue.Rear());       // 预期: -1
    }
}